package com.example.testapplication;

import android.content.DialogInterface;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.PopupWindow;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

public class DialogActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dialog);

    }
    public void myClick(View view){
        switch (view.getId()){
            case R.id.normal_dialog_btn:
                // AlertDialog 的构造方法时 protected
                // 1实例化一个Buidder
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                // 设置对话框样式
                builder.setTitle("提示");  // 标题
                builder.setMessage("您确定退出程序吗"); // 提示语句
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        finish();
                    }
                });
                builder.setNegativeButton("取消",null);
                builder.show();
//                AlertDialog dialog = builder.create();
//                dialog.show();
                break;
            case R.id.diy_dialog_btn:
                // 设置主题
                MyDialog md = new MyDialog(this,R.style.mydialog);
                md.show();
                break;
            case R.id.popup_btn:
                showPopupWindow(view);
                break;
            case R.id.arrayAdapter:
                showArrayDialog();
                break;



        }
    }

    // 数据适配器对话框
    private void showArrayDialog() {
        final String[] items = {"java","Mysql","Android","C","JavaScript"};
        // 数组适配器
        // 参数1 环境
        // 参数 2 布局资源索引，指的每一项数据所呈现的样式android.R.layout.xx
        // 参数3  数据源
        // android.R.layout.simple_dropdown_item_1line  安卓自带 simple_dropdown_item_1line
        //ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line,items);
        // 自定义
       // 参数3：int textViewId 指定文本需要放在布局中对应id文本控制的位置
        ArrayAdapter adapter = new ArrayAdapter(this, R.layout.array_item_layout,R.id.item_txt,items);
        AlertDialog.Builder builder = new AlertDialog.Builder(this)
                .setTitle("请选择")
                // 参数1： 适配器对象(对数据显示规则制定器)
                // 参数2: 监听器
                .setAdapter(adapter, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(DialogActivity.this,items[i],Toast.LENGTH_SHORT).show();
                        dialogInterface.dismiss();
                    }
                });
        builder.show(); // 这一步不要忘记

    }

    // 设置popupWindow
    private void showPopupWindow(View view) {
        // 准备弹窗所需要的视图对象
        View v = LayoutInflater.from(this).inflate(R.layout.popup_layout,null);
        // 1. 实列化对象
        // 参数1 用在弹窗中的view
        // 参数 2 3 弹窗的宽高
        // 参数4 （focusable） 焦点
        PopupWindow window = new PopupWindow(v,195,35,true);
        // 2. 设置 （背景，动画）
        // 设置背景
        window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        // 设置能响应外部的点击事件
        window.setOutsideTouchable(true);
        // 设置能响应点击事件
        window.setTouchable(true);

        // ① 创建动画资源
        // ②创建一个style应用动画资源
        // ③ 对当前弹窗的动画风格设置为第二部的资源索引
       window.setAnimationStyle(R.style.translate_anim);
        // 3. 显示
        // 参数1 （anchor）锚 以某个为参照物
        // 参数2 3  相对于锚 在x y 方向上的偏移量
        window.showAsDropDown(view,20,60);

        // 弹窗中的文本添加点击事件
        v.findViewById(R.id.choose).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(DialogActivity.this,"您点击了选择",Toast.LENGTH_SHORT).show();
                window.dismiss();
            }
        });
        v.findViewById(R.id.choose_all).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(DialogActivity.this,"您点击了全选",Toast.LENGTH_SHORT).show();
                window.dismiss();
            }
        });
        v.findViewById(R.id.copy).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(DialogActivity.this,"您点击了复制",Toast.LENGTH_SHORT).show();
                window.dismiss(); // 弹窗消失
            }
        });

    }

}
